﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;

namespace Chapter13
{
    /// <summary>
    /// 第13章 其他 OOP 技术
    /// </summary>
    public class Program
    {
        public static void Main(string[] args)
        {
            #region 01 ::运算符和全局名称空间限定符
            Code01.Demo.Begin();
            #endregion

            #region 02 定制异常
            Code02.CardLib.Demo.Begin();
            #endregion

            #region 03 事件
            /*
             * 01 事件的含义
             * 02 处理事件
             * 03 定义事件
             * 03.01 多用途的事件处理程序
             * 03.02 EventHandler 和泛型 EventHandler<T> 类型
             * 03.03 返回值和事件处理程序
             * 事件最好使用void返回类型，且避免使用out参数
             * 03.04 匿名方法
             * 匿名方法内包含的变量是局部的
             * 可以使用外部变量，超出作用域时，不会删除，只有方法被销毁时才会删除
             * 比我们希望的时候晚一些，所以要格外小心
             * */
            Code03.Code02.Example01.Demo.Begin();
            Code03.Code03.Example02.Demo.Begin();
            Code03.Code03.Example03.Demo.Begin();
            Code03.Code03.Snippet02.Demo.Begin();
            #endregion

            #region 04 扩展和使用 CardLib
            Code04.CardClient.Demo.Begin();
            #endregion

            #region 05 特性
            /*
             * 01 读取特性
             * 02 创建特性
             * */
            Code05.Code01.Demo.Begin();
            Code05.Code02.Demo.Begin();
            #endregion

            #region 06 小结
            #endregion

            #region 07 练习
            Code07.Demo.Begin();
            #endregion
        }
    }

}
